#include "light_strip.h"

void light_strip_init(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_0;
 	GPIO_Init(GPIOC, &GPIO_InitStructure);
	GPIO_SetBits(GPIOC, GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_0);
}

void light_strip(int8_t data,uint8_t symbol)
{
	static uint8_t flag=0;
	static int8_t pre_data=0;
	if(data>pre_data){flag=1;}else{flag=0;}
	if(symbol==0)
	{
		if(flag==1)
		{
			if(8<=data&&data<10){GPIO_ResetBits(GPIOC,GPIO_Pin_0);}
			else if(10<=data&&data<20){GPIO_ResetBits(GPIOC,GPIO_Pin_1|GPIO_Pin_0);}
			else if(20<=data&&data<25){GPIO_ResetBits(GPIOC,GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(25<=data&&data<30){GPIO_ResetBits(GPIOC,GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(30<=data&&data<35){GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(35<=data&&data<40){GPIO_ResetBits(GPIOC,GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(40<=data&&data<45){GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(45<=data&&data<50){GPIO_ResetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
		}
		else if(flag==0)
		{
			if(40<=data&&data<45){GPIO_SetBits(GPIOC,GPIO_Pin_7);}
			else if(35<=data&&data<40){GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);}
			else if(30<=data&&data<35){GPIO_SetBits(GPIOC,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(25<=data&&data<30){GPIO_SetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(20<=data&&data<25){GPIO_SetBits(GPIOC,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(15<=data&&data<20){GPIO_SetBits(GPIOC,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(10<=data&&data<15){GPIO_SetBits(GPIOC,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(0<=data&&data<10){GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
		}
	}
	if(symbol==1)
	{
		if(flag==1)
		{
			if(5<=data&&data<10){GPIO_ResetBits(GPIOC,GPIO_Pin_7);}
			else if(10<=data&&data<20){GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);}
			else if(20<=data&&data<25){GPIO_ResetBits(GPIOC,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(25<=data&&data<30){GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(30<=data&&data<35){GPIO_ResetBits(GPIOC,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(35<=data&&data<40){GPIO_ResetBits(GPIOC,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(40<=data&&data<45){GPIO_ResetBits(GPIOC,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
			else if(45<=data&&data<50){GPIO_ResetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);}
		}
		else if(flag==0)
		{
			if(40<=data&&data<45){GPIO_SetBits(GPIOC,GPIO_Pin_0);}
			else if(35<=data&&data<40){GPIO_SetBits(GPIOC,GPIO_Pin_1|GPIO_Pin_0);}
			else if(30<=data&&data<35){GPIO_SetBits(GPIOC,GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(25<=data&&data<30){GPIO_SetBits(GPIOC,GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(20<=data&&data<25){GPIO_SetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(15<=data&&data<20){GPIO_SetBits(GPIOC,GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(10<=data&&data<15){GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
			else if(5<=data&&data<10){GPIO_SetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_6|GPIO_Pin_5|GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1|GPIO_Pin_0);}
		}
	}
	pre_data=data;

}




//	
//		if(data>0)
//	{
//		if(flag_down==0)
//		{
//			if(5<=data&&data<10){GPIO_ResetBits(GPIOC,GPIO_Pin_0);}
//			else if(10<=data&&data<20){GPIO_ResetBits(GPIOC,GPIO_Pin_1);}
//			else if(20<=data&&data<25){GPIO_ResetBits(GPIOC,GPIO_Pin_2);}
//			else if(25<=data&&data<30){GPIO_ResetBits(GPIOC,GPIO_Pin_3);}
//			else if(30<=data&&data<35){GPIO_ResetBits(GPIOC,GPIO_Pin_4);}
//			else if(35<=data&&data<40){GPIO_ResetBits(GPIOC,GPIO_Pin_5);}
//			else if(40<=data&&data<45){GPIO_ResetBits(GPIOC,GPIO_Pin_6);}
//			else if(45<=data&&data<50){GPIO_ResetBits(GPIOC,GPIO_Pin_7);flag_down=1;}
//		}
//		else if(flag_down==1)
//		{
//			if(40<=data&&data<45){GPIO_SetBits(GPIOC,GPIO_Pin_7);}
//			else if(35<=data&&data<40){GPIO_SetBits(GPIOC,GPIO_Pin_6);}
//			else if(30<=data&&data<35){GPIO_SetBits(GPIOC,GPIO_Pin_5);}
//			else if(25<=data&&data<30){GPIO_SetBits(GPIOC,GPIO_Pin_4);}
//			else if(20<=data&&data<25){GPIO_SetBits(GPIOC,GPIO_Pin_3);}
//			else if(15<=data&&data<20){GPIO_SetBits(GPIOC,GPIO_Pin_2);}
//			else if(10<=data&&data<15){GPIO_SetBits(GPIOC,GPIO_Pin_1);}
//			else if(5<=data&&data<10){GPIO_SetBits(GPIOC,GPIO_Pin_0);flag_down=0;}
//		}
//	}
